# 需要两个包
import jwt
import datetime
from xm1 import settings

header = {
    'alg': 'HS256',  # 加密算法
    'typ': 'JWT'  # 令牌类型
}
# 密钥，这个应该保持安全  ，不要泄露  现在先随便给一个值
SECRET_KEY = settings.SECRET_KEY


class ToolJWT:
    # 生成token
    # 参数 user 为一个字典  {id:'1',username:'zzs',……}
    def gettoken(self, user):
        payload = {
            'userid': user.get("userid"),
            "username": user.get("username", ""),  # 存储多少个数据 无所阿伟  但是一定要有过期时间
            "exp": datetime.datetime.now() + datetime.timedelta(days=2)  # 过期时间
        }
        # 生成token
        return 'bearer ' + jwt.encode(payload, SECRET_KEY, algorithm="HS256", headers=header)

    # 验证token
    def checktoken(self, token):
        payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"], headers=header)
        return payload


mytoken = ToolJWT()
